package E_2024;

import java.util.*;
/*
 * <p>题目描述:<br> 
 * 记账本上记录了若干条多国货币金额，需要转换成人民币分 (fen)，汇总后输出每行记录一条金额，
 * 金额带有货币单位，格式为数字+单位，可能是单独元，或者单独分，或者元与分的组合要求将这些
 * 货币全部换算成人民币分 (fen) 后进行汇总，汇总结果仅保留整数，小数部分舍弃。元和分的换算
 * 关系都是1:100，如下:
 * <br> 1CNY=100fen (1元=100分)
 * <br> 1HKD=100cents (1港元=100港分) 
 *      1JPY=100sen (1日元=100仙)
 * <br> 1EUR=100eurocents (1欧元=100欧分)
 * <br> 1GBP=100pence (1英镑=100便士)
 * <br> 汇率如下表</p>
    <td>CNY     100</td>
    <td>JPY     1825</td>
    <td>HKD     123</td>
    <td>EUR     14</td>
    <td>GBP     12</td>
    <p>即100CNY = 1825JPY = 123HKD = 14EUR = 12GBP</p>
输入描述
    第一行输入为 N，N 表示记录数。0<N<100
    之后 N 行，每行表示一条货币记录，且该行只会是一种货币。
输出描述
    将每行货币转换成人民币分 (fen) 后汇总求和，只保留整数部分输出格式只有整数数字，不
    带小数，不带单位。
    用例
输入
    2
    20CNY53fen
    53HKD87cents
输出
    6432
    20元53分 + 53港币87港分，换成人民币分后为6432分
    https://picx.zhimg.com/v2-17138800112b8cf8b736d26b22639ddf_r.jpg
 */
public class E_100_50 {
    public static Map<String,Integer> hl = new HashMap<>();
    static{
        hl.put("CNY", 100);
        hl.put("JPY", 1825);
        hl.put("HKD", 123);
        hl.put("EUR", 14);
        hl.put("GBP", 12);
    }
    public static void main(String[] args) {
        System.out.println(ans(new String[]{"53HKD87cents"}));
        System.out.println(ans(new String[]{"53HKD87cents","20CNY53fen"}));
        System.out.println(ans(new String[]{"20CNY53fen"}));
        System.out.println(ans(new String[]{"123HKD"}));
    }
    public static int ans(String[] arr){
        int ans = 0;
        for (String temp : arr) {
            int left = 0;
            int right = 0;
            boolean num = true;
            int yuan = 0;
            String key = null;
            int fen = 0;
            for (; right < temp.length(); right++) {
                char ch = temp.charAt(right);
                if (num && ch >= 'A' && ch < 'Z') {
                    yuan = Integer.parseInt(temp.substring(left, right));
                    num = false;
                    left = right;
                } else if (!num && ch >= '0' && ch <= '9') {
                    key = temp.substring(left, right);
                    num = true;
                    left = right;
                } else if (ch >= 'a' && ch <= 'z') {
                    fen = Integer.parseInt(temp.substring(left, right));
                    break;
                }
            }
            if (!num) {
                key = temp.substring(left);
            }
            ans = ans + (yuan * 100 + fen) * 100 / hl.get(key);
        }
        return ans;
    }
}
